#!/usr/bin/env python
# encoding: utf-8
'''
@author: Excelsiorly
@license: (C) Copyright 2022, All Rights Reserved.
@contact: excelsiorly@qq.com
@file: 007. 整数反转.py
@time: 2022/2/27 16:16
@desc: https://leetcode-cn.com/problems/reverse-integer/
> 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
假设环境不允许存储 64 位整数（有符号或无符号）。

@解题思路：
    1. 数学，t: O(len(x)), s: O(1)
'''
class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        num = abs(x)
        ans = 0
        while num>0:
            ans = ans*10 + num%10
            num //= 10
        ans = ans if x>=0 else -ans
        ans = ans if -2**31<=ans<=2**31-1 else 0
        return ans
